	Версии Монитора v3.5 c индексом H доработаны для первичной 
загрузки не с FDD (дисковода), а с HDD (жесткого диска или CompactFlash).
	Для мониторов M35zrkh(клав. RK), M35zmsh(клав.  MS7007) 
поддерживается схема подключения IDE к параллельному порту 8255 
(580ВВ55), используется штатный порт F500, что, понятно, исключает работу
с ORDOS. 
	Для мониторов M36zrkh(клав. RK), M36zmsh(клав.  MS7007) 
поддерживается схема подключения IDE к параллельному порту 8255 
(580ВВ55), используется штатный порт F600. 

	Версии Монитора v3.5 c индексом S (M35zrks, M35zmss) доработаны
для первичной загрузки с SD-Card (SDC - размером до 2Gb), подключенной по
схеме MSX.

	Версии Монитора v3.5 c индексом C (M35zrkc, M35zmsc) доработаны
для первичной загрузки с SD-Card (SDC - размером до 2Gb), подключенной по
схеме N8VEM.

Под ORDOS используйте утилиту MBOOT$.ord (ее можно прошить в ROM-DISK),
которая использует загрузчик, полностью аналогичный Мониторам
M36ZRKH.BIN и M36ZMSD.BIN, 

	В этих версиях Монитора по сбросу/включению питания начинается
загрузка с Мастер-IDE или SD-Card (в зависимости от используемого 
Монитора): Монитор прочитывает первый 512-байтный сектор устройства в 
ОЗУ первой (считая с нуля) страницы на адрес 0, проверяет наличие кодов
AA55h (MBR flag) и C3h (JMP) по адресам (от начала бутсектора) 1FEh,
0h соответственно, если все ОК - передает управление по адресу 1:0000h
(если коды не совпадают, прерывает загрузку с кодом ошибки 00C3). 

В версиях Монитора v3.5 с загрузкой с Мастер-IDE или SD-Card
существует дополнительная точка входа с адресом 0F834h - это
подпрограмма чтения 512-байтного сектора с устройства.

Входные параметры п\п чтения 512-байтного сектора:
  в регистре HL передается адрес ПОСЛЕДНЕГО (!) байта структуры
    { int16 BufferAddress; long32 LBA_address; }
  в регистре E передается код операции 
      (ide_cmd_read=20h, ide_cmd_id=0ECh, ide_cmd_write=30h) 
    соответственно для чтения сектора, получения информации о 
    приводе (identify) или только позиционирования с проверкой
    готовности (E=ide_cmd_write) для последующей записи сектора 
    уже не монитором, а программой пользователя.
  в регистре D передается маркер IDE устройства: 0=Master, 10h=Slave, SDC=любое значение

  Числа типов int16 (16 бит), long32 (32 бит) в ОЗУ хранятся в нотации
little-endian (байты размещаются в памяти от младшего к старшему).

Подпрограмма считывает сектор, с номером указанным в LBA_address
(CHS-нотация не поддерживается) и помещает его по адресу, указанному в
BufferAddress в текущей странице ОЗУ (состяние портов 0F9h, 0FBh не
изменяется и не учитывается).

Выход п\п чтения 512-байтного сектора:
   Подпрограмма возвращает рег.А=0 и во флаговом регистре установленный
флаг Z, если чтение выполнилось успешно; рег.А=код ошибки и во флаговом
регистре установленный флаг NZ если произошла ошибка. Коды ошибок:
  0FFh - устройство занято (device busy)
  0FEh - нет такого устройства на шине (device not present)
  001h..0C2h, 0C4h..0FCh - коды ошибок по спецификации ATA (такие, как
                           их возвращает IDE-устройство) 

П\п использует (не сохраняет) все регистры основного набора, 
дополнительный набор регистров (AF',BC',DE',HL',IX, IY) не 
используется. При выходе из подпрограммы 0F834h при успешном завершении,
регистры содержат:
 A=код завершения (0=успешно, иначе - код ошибки)
   Если успешно: B=0,
{ 25.02.2010 }   С=drv_sign (0=IDE_MASTER, 10h=IDE_SLAVE; 57h=IDE_PRO, 1=SDC, 3=SDHC),
                 DE=базовый адрес ППА контроллера (0F500h или 0F600h) для схем ВВ55,
                 HL=BufferAddress+512, 

Пример использования п\п чтения 512-байтного сектора:
    
;
; считать с HDD сектор с LBA-номером 123456 (1E240h) 
;   в буфер с адресом  BufferAddress
;
ide_cmd_read	equ	20h
;
	ld	hl, addr
	ld	d, 0		; 0=Master_IDE
	ld	e, ide_cmd_read
	call	0F834h
	jr 	nz, error	; goto if was a read error
read_ok:			; else do something
error:	ret
;
	defw	BufferAddress	
	defb 	040h		;
	defb 	0E2h
	defb 	001h
addr:	defb 	000h
;
BufferAddress:	defs	512, 0
;

Подпрограммы для работы с IDE большие (а для SD-card еще 
больше), существенно больше загрузчика с Floppy, поэтому 
пришлось пожертвовать русскими буквами знакогенератора 
(т.к. все равно никто не пользуется KOI7 - как в ORDOS,
 так и в CP/M используются загружаемые драйвера KOI8 
 со своими собственными знакогенераторами).
